package com.assignwork.mapper;

import com.assignwork.dto.StatisticsSearchDTO;
import com.assignwork.entity.VoyageVisa;
import com.assignwork.vo.*;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.mapstruct.Mapper;

import java.util.List;

@Mapper
public interface StatisticsMapper extends BaseMapper<VoyageVisa> {
    List<StatisticsVO> statisticsQuery(@Param("dto") StatisticsSearchDTO dto);

    List<ThroughPutStatisticsVO> throughPutstatisticsQuery(StatisticsSearchDTO dto, IPage<ThroughPutStatisticsVO> ipage);

    ThroughPutStatisticsVO sumThroughPutstatisticsQuery(@Param("dto")StatisticsSearchDTO dto);

    List<ThroughPutStatisticsVO> noPageThroughPutstatisticsQuery(@Param("dto")StatisticsSearchDTO dto);
    List<ThroughPutStatisticsVO> cargoQuery(String BERTHCOD);

    List<ThroughPutStatisticsVO> hmQuery();

    List<ThroughPutStatisticsVO> berthListQuery();
    List<ThroughPutStatisticsVO> ttlhlQuery(@Param("dto")StatisticsSearchDTO dto);

    Long voyageQuery(@Param("dto")StatisticsSearchDTO dto);

    List<ThroughPutStatisticsVO> selectVoyageSearch(@Param("dto")StatisticsSearchDTO dto);


    List<TrainComprehensiveStatisticsVO>  trainLoadingQuery(@Param("dto")StatisticsSearchDTO dto);

    TrainComprehensiveStatisticsVO sumTrainLoadingQuery(@Param("dto")StatisticsSearchDTO dto);

    List<TrainShiftStatisticsVO> TrainShiftStatistics (@Param("dto")StatisticsSearchDTO dto);

    TrainShiftStatisticsVO sumTrainShiftStatistics (@Param("dto")StatisticsSearchDTO dto);
    List<TrainComprehensiveStatisticsVO>  trainStopTimeQuery(@Param("dto")StatisticsSearchDTO dto);

    TrainComprehensiveStatisticsVO sumTrainStopTimeQuery(@Param("dto")StatisticsSearchDTO dto);


    List<WorkLoadStatisticVO> workLoadStatisticQuery(@Param("dto")StatisticsSearchDTO dto);

    WorkLoadStatisticVO sumWorkLoadStatisticQuery(@Param("dto")StatisticsSearchDTO dto);
}
